package com.ruoyi.wvp.domain;

import java.time.LocalDate;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseModel;

import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import com.baomidou.mybatisplus.annotation.TableName;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * ai摄像头事件对象 wvp_surveillance_event
 * 
 * @author ruoyi
 * @date 2024-07-29
 */
@Schema(description = "ai摄像头事件对象")
@TableName("wvp_surveillance_event")
@Setter
@Getter
@ToString
public class SurveillanceEvent extends BaseModel{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @Schema(title = "主键")
    @TableId(type = IdType.AUTO)
    private Long id;
    /** 事件编号 */
    @Schema(title = "事件编号")
    @Excel(name = "事件编号",height = 78)
    private String eventCode;
    /** 设备编号 */
    @Schema(title = "设备编号")
    @Excel(name = "设备编号")
    private String deviceNumber;
    /** 事件描述 */
    @Schema(title = "事件类型")
    @Excel(name = "事件类型")
    private String eventTypeStr;
    /** 区名称 */
    @Schema(title = "辖区")
    @Excel(name = "辖区")
    private String areaName;
    @Schema(title = "街道")
    @Excel(name = "街道")
    private String streetName;
    /** 社区 */
    @Schema(title = "社区")
    @Excel(name = "社区")
    private String community;
    /** 小区名称 */
    @Schema(title = "小区")
    @Excel(name = "小区")
    private String residentialName;
    /** 设备名称 */
    @Schema(title = "投放点名称")
    @Excel(name = "投放点名称")
    private String deviceName;
    /** 事件图片 */
    @Schema(title = "事件图片")
    @Excel(name = "事件图片",cellType= Excel.ColumnType.IMAGE)
    private String picUrl;
    /** 事件持续时间 */
    @Schema(title = "持续时间")
    @Excel(name = "持续时间")
    private String eventDurationTime;
    /** 事件开始时间 */
    @Schema(title = "报警时间")
    @Excel(name = "报警时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime eventBeginTime;
    /** 事件结束时间 */
    @Schema(title = "结束时间")
    @Excel(name = "结束时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime eventEndTime;
    /** 处理时长 */
    @Schema(title = "处理时长")
    @Excel(name = "处理时长")
    private Long processingTime;
    /** 处理人 */
    @Schema(title = "处理人")
    @Excel(name = "处理人")
    private String processingName;
    /** 处理状态 */
    @Schema(title = "处理状态")
    @Excel(name = "处理状态")
    private Integer processingStatus;
    /** 综合评分 */
    @Schema(title = "综合评分")
    @Excel(name = "综合评分")
    private Integer score;
    /** 处理意见 */
    @Schema(title = "处理意见")
    @Excel(name = "处理意见")
    private String opinion;
    /** 超时情况 */
    @Schema(title = "超时情况")
    @Excel(name = "超时情况")
    private String timeoutSituation;
    /** 是否及时处理 */
    @Schema(title = "是否及时处理")
    @Excel(name = "是否及时处理")
    @TableField(exist = false)
    private String timelyFlagStr;




    /** 场景 */
    @Schema(title = "AI场景")
//    @Excel(name = "AI场景")
    private String scene;
    /** 本地事件图片地址 */
    @Schema(title = "本地事件图片地址")
//    @Excel(name = "本地事件图片地址")
    private String localPicUrl;
    /** 图片宽度 */
    @Schema(title = "图片宽度")
//    @Excel(name = "图片宽度")
    private Long imgWidth;
    /** 图片宽度 */
    @Schema(title = "图片宽度")
//    @Excel(name = "图片宽度")
    private Long imageHeight;
    /** 事件类型 */
    @Schema(title = "事件类型")
//    @Excel(name = "事件类型")
    private String eventType;
    /** 图片作品 */
    @Schema(title = "图片作品")
//    @Excel(name = "图片作品")
    private String imgLocation;
    /** 设备ID */
    @Schema(title = "设备ID")
//    @Excel(name = "设备ID")
    private String surveillanceId;


    /** 是否及时处理 */
    @Schema(title = "是否及时处理")
//    @Excel(name = "是否及时处理")
    private Integer timelyFlag;








    /** 处理完成时间 */
    @Schema(title = "处理完成时间")
//    @Excel(name = "处理完成时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime finishTime;

    /** 设备序列号 */
    @Schema(title = "设备序列号")
//    @Excel(name = "设备序列号")
    private String serialNumber;

    /** 省份名称 */
    @Schema(title = "省份名称")
//    @Excel(name = "省份名称")
    private String proviceName;
    /** 省份编码 */
    @Schema(title = "省份编码")
//    @Excel(name = "省份编码")
    private String proviceCode;
    /** 市名称 */
    @Schema(title = "市名称")
//    @Excel(name = "市名称")
    private String cityName;
    /** 市编号 */
    @Schema(title = "市编号")
//    @Excel(name = "市编号")
    private String cityCode;

    /** 区编码 */
    @Schema(title = "区编码")
//    @Excel(name = "区编码")
    private String areaCode;
    /** 地址 */
    @Schema(title = "地址")
//    @Excel(name = "地址")
    private String address;


    /** 设备品牌 */
    @Schema(title = "设备品牌")
//    @Excel(name = "设备品牌")
    private String deviceBrand;
    /** 设备型号 */
    @Schema(title = "设备型号")
//    @Excel(name = "设备型号")
    private String deviceModel;

    @Schema(title = "街道编号")
    private String streetCode;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    private LocalDateTime eventStartTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    private LocalDateTime eventStopTime;

    //*社区id*/
    private String communityCode;
    /*小区ID*/
    private String residentialCode;
}
